package modelo.DAO;

import java.sql.Date;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import modelo.Conexion;
import modelo.Liga;
import modelo.Partido;
import modelo.Umpire;

public class PartidoDAO {
	
	public PartidoDAO() {
		super();
	}

	public void regPartido(Partido partido) {
		String tiraSQL = "INSERT INTO partidos VALUES ('"+partido.getCodigo()+"','"+partido.getEquipoCasa()+"','"+partido.getEquipoVisit()+"','"+partido.getUmpire()+"','"+partido.getFechaPartido()+"','"+partido.getMarcFinalCasa()+"','"+partido.getMarcFinalVisit()+"','"+partido.getInnings()+"')";
		Conexion.ejecutar(tiraSQL);
	}
	
	public int contarPartidosDAO(){
		return this.consultarPartidos().size();
	}
	
	public void actualizarPartJug(Liga liga){
		for (int i=0; i<liga.contarAnotaciones(); i++){
			Partido partido=liga.getJugAnotPart().get(i);
			String tiraSQL = "INSERT INTO partidojugador VALUES ('"+partido.getCodigo()+"','"+partido.getCedjugAnot()+"','"+partido.getCuadJug()+"','"+partido.getCarrJug()+"')";
			Conexion.ejecutar(tiraSQL);
		}
	}

	public ArrayList<Partido> consultarPartidos() {
		ArrayList<Partido> partidos = new ArrayList<Partido>();
		String tiraSQL = "SELECT * FROM partidos";
		ResultSet resultSet = Conexion.consultar(tiraSQL);
		try {
			while (resultSet.next()) {
				String codigo = resultSet.getString("codpartido");
				String casa = resultSet.getString("equipocasa");
				String visi = resultSet.getString("equipovisi");
				String umpire = resultSet.getString("cedumpire");
				String fecha = String.valueOf(resultSet.getDate("fecha")); // PENDIENTE DE CAMBIAR LA FECHA DE DATE (QUE VIENE DEL SQL) A STRING (COMO ESTA DECLARADO EN LA CLASE EQUIPO)
				fecha = fecha.substring(8, fecha.length())+"-"+fecha.substring(5, fecha.length()-3)+"-"+fecha.substring(0, fecha.length()-6);
				int marCasa= resultSet.getInt("marcfinalcasa");
				int marVisi = resultSet.getInt("marcfinalvisi");
				int innings = resultSet.getInt("innings");
				int cuadHome = resultSet.getInt("cuadcasa");
				int cuadVisit = resultSet.getInt("cuadvisi");
				Partido partido = new Partido(codigo, fecha, casa, visi, umpire, innings, marCasa, marVisi,cuadHome,cuadVisit);
				partidos.add(partido);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return partidos;
	}
}

